package com.zyh.demo;

import java.util.Scanner;

public class LoopDemo1 {
    public static void main(String[] args) {
        /*

        输出[0,100]之间的数，分别以递增和递减的方式实现
        System.out.println("递增输出");
        for (int i = 0; i < 101; i++) {
            System.out.print(i + " ");
        }
        System.out.println();
        System.out.println("递减输出");
        for (int i = 100; i > 0; i--) {
            System.out.print(i + " ");
        }

         */


        /*

        输出1-100之间的奇数和偶数

        System.out.println("1-100之间的奇数有：");
//        判断奇数
        for (int i = 1; i < 101; i++) {
            if (i % 2 != 0) {
                System.out.print(i + " ");
            }
        }
        System.out.println();
        System.out.println("1-100之间的偶数有：");
        for (int i = 1; i < 101; i++) {
            if (i % 2 == 0) {
                System.out.print(i + " ");
            }
        }

         */


        /*

        输入一个正整数n，计算1 + 2 + 3 +...+n的和
//        输入一个数据
        System.out.println("请输入一个正整数：");
        int num = new Scanner(System.in).nextInt();
//        判断数据是否合法
        if (num < 1) {
            System.err.println("输入有误！");
            return;
        }
//        定义总和
        int sum = 0;
//        循环
        for (int i = 1; i <= num; i++) {
            sum += i;
        }
        System.out.println("1到" + num + "的和是：" + sum);

        */


        /*
        输入一个正整数，计算1-2+3-4+5—6+...-(n-1)+n的和

        //        输入一个数据
        System.out.println("请输入一个正整数：");
        int num = new Scanner(System.in).nextInt();
//        判断数据是否合法
        if (num<0){
            System.err.println("输入有误！");
            return;
        }
//        定义总和
        int sum=0;
        for (int i=1;i<=num;i++ ){
//        偶数累减
            if (i%2==0){
                sum-=i;
            }
//            奇数偶加
            else {
                sum+=i;
            }
        }
//        输出打印sum
        System.out.println("sum = " + sum);

         */

        /*
        输出1-1000之间能被5和3整除的数，并且每行输出5个

//        计数变量
        int count = 0;
//        遍历1-1000
        for (int i = 1; i < 1001; i++) {
//            判断能被5和3整除
            if (i % 5 == 0 && i % 3 == 0) {
                System.out.print(i + " ");
//                符合条件就计数加一
                count++;
//                计数满5就输出换行
                if (count % 5 == 0) {
                    System.out.println();
                }
            }
        }
        System.out.println();
        System.out.println("总共有"+count+"个数");

         */

        /*
        求100-999的水仙花数



        System.out.println("100-999的水仙花数有：");
        for (int i = 100; i < 1000; i++) {
//        定义个位十位百位
            int g, s, b;
//            分别取出个位，十位和百位的值
            g = i / 1 % 10;
            s = i / 10 % 10;
            b = i / 100 % 10;
//            判断水仙花数的规则：每个位上的数字的3次幂之和等于他本身
            if ((g * g * g + s * s * s + b * b * b) == i) {
                System.out.print(i + " ");
            }
        }
         */



        /*
        变成找出四位整数abcd中满足下述关系的数，(ab+cd)*(ab+cd)=abcd
         */
        int count = 0;
        for (int i = 1000; i < 10000; i++) {
            int ab = i / 100;
            int cd = i % 100;
            if (Math.pow((ab + cd), 2) == i) {
                System.out.print(i + "\t");
                count++;
            }
        }
        System.out.println();
        System.out.println("共有" + count + "个..");
    }
}
